using System;
using System.Collections;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ARStructTypeInfo(Name = "ARCurrencyLimitStruct", NumberOfMembers = 5u), ClassInterface, Guid("2ea114ba-15e5-4f5c-845e-eab9ef97b84f"), ProgId("BMC.ARSystem.CurrencyLimit")]
	public class CurrencyLimit : Limit
	{
		[ARStructMemTypeInfo(Name = "rangeLow", Offset = 0u)]
		private string _rangeLow;
		[ARStructMemTypeInfo(Name = "rangeHigh", Offset = 1u)]
		private string _rangeHigh;
		[ARStructMemTypeInfo(Name = "precision", Offset = 2u)]
		private int _precision;
		[ARStructMemTypeInfo(Name = "functionalCurrencies", Offset = 3u)]
		private ArrayList _functionalCurrencies;
		[ARStructMemTypeInfo(Name = "allowableCurrencies", Offset = 4u)]
		private ArrayList _allowableCurrencies;
		public string RangeLow
		{
			get
			{
				return this._rangeLow;
			}
			set
			{
				this._rangeLow = value;
			}
		}
		public string RangeHigh
		{
			get
			{
				return this._rangeHigh;
			}
			set
			{
				this._rangeHigh = value;
			}
		}
		public int Precision
		{
			get
			{
				return this._precision;
			}
			set
			{
				this._precision = value;
			}
		}
		public ArrayList FunctionalCurrencies
		{
			get
			{
				return this._functionalCurrencies;
			}
			set
			{
				this._functionalCurrencies = value;
			}
		}
		public ArrayList AllowableCurrencies
		{
			get
			{
				return this._allowableCurrencies;
			}
			set
			{
				this._allowableCurrencies = value;
			}
		}
		internal static CurrencyLimit createInstance(object[] rawData, Server server)
		{
			CurrencyLimit currencyLimit = new CurrencyLimit();
			CurrencyLimit arg_1A_0 = currencyLimit;
			int[] indexSpec = new int[1];
			arg_1A_0.RangeLow = (string)Util.GetAt(rawData, indexSpec);
			currencyLimit.RangeHigh = (string)Util.GetAt(rawData, new int[]
			{
				1
			});
			currencyLimit.Precision = (int)Util.GetAt(rawData, new int[]
			{
				2
			});
			currencyLimit.FunctionalCurrencies = ARTypeMgr.Instance.ArrayListFromVariant(Type.GetType("Unknown"), (object[])Util.GetAt(rawData, new int[]
			{
				3
			}), server);
			currencyLimit.AllowableCurrencies = ARTypeMgr.Instance.ArrayListFromVariant(Type.GetType("Unknown"), (object[])Util.GetAt(rawData, new int[]
			{
				4
			}), server);
			return currencyLimit;
		}
	}
}
